perm filename OPDECL.SAI[PNT,HE]7 blob sn#414246 filedate 1979-02-01 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002					REdefine
C00005 ENDMK
C⊗;
				REdefine
preload_array(name, defs, type, first, len)"[][]"=[
	preload_with defs null; type array name[first:first+len] ];

				REdefine
preset_array(name, defs, type, first, len) "[][]"=[
	preset_with defs null; type array name[first:first+len] ];

				REdefine

indices(name, postfix)"[][]"=[
    redefine xxcount=1;
    redefine xx(xxarg)=[
	redefine xxtemp= [ define xxarg]&[postfix=xxcount];
	xxtemp;
	redefine xxcount=xxcount+1;];
    name ];

	define op_list "[][]"=[
ZZ("*",	times,	#TERM)
ZZ(".",	dot,		#TERM)
ZZ("REL",	rel,		#TERM)
ZZ("←",	backarrow,	#TERM)
ZZ("/",	divide,	#TERM)
ZZ("MIN",	MIN,		#TERM)
ZZ("MAX",	MAX,		#TERM)
ZZ("MOD",	MOD,		#TERM)
ZZ("DIV",	DIV,		#TERM)
ZZ("+",	Plus,	#EXP)
ZZ("-",	minus,	#EXP)
ZZ("WRT",	WRT,		#TERM)

ZZ("POS",	POS,		#FACTOR)
ZZ("UNIT",	UNIT,	#FACTOR)
ZZ("AXIS",AXIS,	#FACTOR)
ZZ("ORIENT",	ORIENT,	#FACTOR)
ZZ("CONSTRUCT",	CONSTRUCT,	#FACTOR)
ZZ("FRAME",	FRAME,	#FACTOR)
ZZ("VECTOR",	VECTOR,	#FACTOR)
ZZ("TRANS",	TRANS,	#FACTOR)
ZZ("|",	MAGNITUDE,	#FACTOR)
ZZ(["("],	LPAREN,	#FACTOR)
ZZ(["( , , )"],IMPLICIT,	#FACTOR)
ZZ("↑",		UPARROW,	#FACTOR)
ZZ("↓",		DOWNARROW,	#FACTOR)
ZZ("$",		DOLLAR,		#FACTOR)
ZZ("α",		ALPHA,		#FACTOR)
ZZ("SQRT",	SQRT,	#FACTOR)
ZZ("INT",	INT,	#FACTOR)
ZZ("SIN",	SINE,	#FACTOR)
ZZ("COS",	COSINE,	#FACTOR)
ZZ("TAN",	TANGENT,	#FACTOR)
ZZ("ASIN",	ASINE,	#FACTOR)
ZZ("ACOS",	ACOSINE,	#FACTOR)
ZZ("EVAL",	EVAL,	#FACTOR)
ZZ("ATAN2",	ATAN2,	#FACTOR)
ZZ("LOG",	LOG,	#FACTOR)
ZZ("EXP",	EXP,	#FACTOR)
ZZ("ROT",	ROT,		#FACTOR)
];

REQUIRE "[][]" DELIMITERS;
REDEFINE ZZ(ARG0,ARG1,ARG2)=[XX(ARG1)];

indices(op_list,_X) ;


DEFINE #EXP=1,#FACTOR=2,#TERM=3 ;

REDEFINE ZZ(ARG0,ARG1,ARG2)=[ARG0,] ;

preset_array(CODE_OP, OP_LIST,STRING, 1, ROT_X);